home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / fractal / kaos.lha / modellib / threeosc_def.c < prev    next >
Encoding:
Text File  |  1990-01-16  |  1.5 KB  |  77 lines

  1.  
  2. int threeosc_init()
  3. {
  4.     title_label = "Diss Period. Forced Oscillator";
  5.  
  6.     mapping_on = 0;
  7.     inverse_on = 1;
  8.     fderiv_on = 0;
  9.     enable_polar = 0;
  10.     enable_period = 1;
  11.     period_len[1] = 1.;
  12.     period_len[3] = 1.;
  13.  
  14.     var_dim = 4;
  15.     param_dim = 5;
  16.     func_dim = 2;
  17.  
  18.     (void) malloc_init();
  19.  
  20.     var_label[0] = "xdot";
  21.     var_label[1] = "x";
  22.     var_label[2] = "ydot";
  23.     var_label[3] = "y";
  24.     param_label[0] = "beta1";
  25.     param_label[1] = "beta2";
  26.     param_label[2] = "alpha";
  27.     param_label[3] = "dcamp";
  28.     param_label[4] = "acamp";
  29.     func_label[0] = "t";
  30.     func_label[1] = "Undefined";
  31.  
  32.     param[0] = 1;
  33.     param[1] = 1;
  34.     param[2] = 0.3;
  35.     param[3] = 1;
  36.     param[4] = 1;
  37.     var_i[0] = 0;
  38.     var_i[1] = 0;
  39.     var_i[2] = 0;
  40.     var_i[3] = 0;
  41.  
  42.     param_min[0]= -5; param_max[0]= 5;
  43.     param_min[1]= -5; param_max[1]= 5;
  44.     param_min[2]= -5; param_max[2]= 5;
  45.     param_min[3]= -5; param_max[3]= 5;
  46.     param_min[4]= -5; param_max[4]= 5;
  47.     var_min[0]= -5; var_max[0]= 5;
  48.     var_min[1]= 0; var_max[1]= 1;
  49.     var_min[2]= -5; var_max[2]= 5;
  50.     var_min[3]= 0; var_max[3]= 1;
  51.     func_min[0]= -5; func_max[0]= 5;
  52.  
  53.     f_p = threeosc_f;
  54.     func_p = threeosc_func;
  55. }
  56. int threeosc_f(f,index,x,p,t,dim)
  57. int index,dim;
  58. double f[],x[],p[],t;
  59. {
  60.     double sum,sinx0,sinx2,cost;
  61.  
  62.     sinx0 = sin(twopi * x[0]);
  63.     sinx2 = sin(twopi * x[2]);
  64.     cost = cos(twopi * t);
  65.     sum = x[0] + sinx0 + x[2] + sinx2;
  66.     f[0] = x[1];
  67.     f[1] = (-x[1] - sinx0 + p[2] * sum - p[3] - p[4] * cost) / p[0];
  68.     f[2] = x[3];
  69.     f[3] = (-x[3] - sinx2 + p[2] * sum - p[3] - p[4] * cost) / p[1];
  70. }
  71. int threeosc_func(f,x,p,t,dim)
  72. double f[],x[],p[],t;
  73. int dim;
  74. {
  75.     f[0] = t;
  76. }
  77.